# Maintainer: Sven-Hendrik Haase <svenstaro@archlinux.org>
# Contributor: Joe George <joe at externl dot com>
# Contributor: Daniel Spies <ds20150201aur at pskx dot net>
# Contributor: Otto Allmendinger <otto.allmendinger@gmail.com>

pkgname=(zeroc-ice zeroc-ice-java)
pkgbase=zeroc-ice
pkgver=3.7.10
pkgrel=1
pkgdesc="An object-oriented middleware that provides RPC functionality"
arch=(loong64 x86_64)
url="https://zeroc.com"
license=('GPL' 'custom:ice')
makedepends=('java-environment=11') # 'gradle' currently not compatible
depends=('mcpp' 'lmdb' 'libedit' 'expat' 'bzip2' 'openssl' 'libxcrypt')
source=("ice-${pkgver}.tar.gz::https://github.com/zeroc-ice/ice/archive/v${pkgver}.tar.gz"
        "ice-packaging-${pkgver}.tar.gz::https://github.com/zeroc-ice/ice-packaging/archive/v${pkgver}.tar.gz"
        zeroc-ice.sysusers
)
sha256sums=('b90e9015ca9124a9eadfdfc49c5fba24d3550c547f166f3c9b2b5914c00fb1df'
            'a7d4b8f3732062de769e53531ed7b34765c9f95f60c294a09fcce65edf24703d'
            '5fdbb1ed753e84e6b49c529e171af848e74a8890fe485dfe1d2bbec3c198dd90')

_make_args=(
    "OPTIMIZE=yes"
    "USR_DIR_INSTALL=yes"
    "prefix=/usr"
    "CONFIGS=shared cpp11-shared"
    "SKIP=slice2py"
)

build() {
  cd "${srcdir}"/ice-${pkgver}
  make "${_make_args[@]}" "LANGUAGES=cpp java" srcs
}

package_zeroc-ice() {
  backup=("etc/glacier2router.conf"
          "etc/icegridnode.conf"
          "etc/icegridregistry.conf"
  )

  cd "${srcdir}"/ice-${pkgver}

  make install "${_make_args[@]}" DESTDIR="${pkgdir}" "LANGUAGES=cpp"
  install -Dm644 "${srcdir}"/ice-${pkgver}/ICE_LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE

  rm -f "${pkgdir}"/usr/share/Ice-${pkgver}/LICENSE
  rm -f "${pkgdir}"/usr/share/Ice-${pkgver}/ICE_LICENSE

  rm -df "${pkgdir}"/usr/lib/
  mv "${pkgdir}"/usr/lib64/ "${pkgdir}"/usr/lib/

  install -Dm644 "${srcdir}"/ice-packaging-${pkgver}/ice/rpm/glacier2router.conf "${pkgdir}"/etc/glacier2router.conf
  install -Dm644 "${srcdir}"/ice-packaging-${pkgver}/ice/rpm/icegridnode.conf "${pkgdir}"/etc/icegridnode.conf
  install -Dm644 "${srcdir}"/ice-packaging-${pkgver}/ice/rpm/icegridregistry.conf "${pkgdir}"/etc/icegridregistry.conf

  install -Dm644 "${srcdir}"/ice-packaging-${pkgver}/ice/rpm/glacier2router.service \
                 "${pkgdir}"/usr/lib/systemd/system/glacier2router.service
  install -Dm644 "${srcdir}"/ice-packaging-${pkgver}/ice/rpm/icegridnode.service \
                 "${pkgdir}"/usr/lib/systemd/system/icegridnode.service
  install -Dm644 "${srcdir}"/ice-packaging-${pkgver}/ice/rpm/icegridregistry.service \
                 "${pkgdir}"/usr/lib/systemd/system/icegridregistry.service

  mkdir -p "${pkgdir}"/var/lib/ice/icegrid/{node1,registry}
  chown -R 101:101 "${pkgdir}"/var/lib/ice

  install -Dm644 "${srcdir}"/zeroc-ice.sysusers "${pkgdir}"/usr/lib/sysusers.d/$pkgname.conf
}

package_zeroc-ice-java() {
  depends=(zeroc-ice java-environment)

  cd "${srcdir}"/ice-${pkgver}

  export GRADLE_USER_HOME=/tmp
  make install "${_make_args[@]}" DESTDIR="${pkgdir}" "LANGUAGES=java"

  rm -rf "${pkgdir}"/usr/share/ice
}
